package sundun.sharding.common.complex;

import com.google.common.collect.BoundType;
import lombok.Data;

import java.util.List;
/**
 * @author: zxl
 * @date: 2024/07/31 16:03
 */
@Data
public class ComplexShardingParamValue<T extends Comparable<? super T>>{

    /**
     * 参数值为List 如 in（'1','2'）
     */
    private List<T> listValue;

    /**
     * 参数值为单个 如 = '1'
     */
    private T singleValue;

    /**
     * 范围查询，是否有上区间
     */
    private boolean upperBound;

    /**
     * 范围查询，是否有下区间
     */
    private boolean lowerBound;

    /**
     * 范围查询，上区间
     */
    private T upperEndPoint;

    /**
     * 范围查询，下区间
     */
    private T lowerEndPoint;

    // 上区间的开闭类型 CLOSE:闭区间  OPEN开区间  比如(1,100]
    private BoundType upperBoundType;

    // 下区间开闭类型 CLOSE:闭区间  OPEN开区间  比如[1,100)
    private BoundType lowerBoundType;
}
